#ifndef __I_NETWORK_CALLBACK_H_INCLUDED__
#define __I_NETWORK_CALLBACK_H_INCLUDED__

#include "ISocket.h"

namespace game
{
	namespace net
	{
		// Interface of an object wich can receive network callbacks
		class INetworkCallback 
		{

		public:

			//! This event is called when a socket is closed
			virtual void onClose(ISocket* Socket) = 0;

			//! This event is called when data is received
			virtual void onDataReceive(ISocket* Socket) = 0;

			//! This event is called when a socket has succesfully connected
			virtual void onConnect(ISocket *Socket) = 0;

			//! This event is called when an error occours
			virtual void onError(ISocket *Socket) = 0;

			//! This event is called when the wifi connection is estabilished
			//! \param Connected: If true the wifi has estabilished a connection
			virtual void onWiFiStatusChange(bool Connected) = 0;
		};
	}
}
#endif